package com.probox.common.entity.domain.customer;

import java.util.Date;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.*;
import com.probox.common.core.annotation.Excel;

/**
 * 客户运营对象 customer_operation
 *
 * @author usoft
 * @date 2021-07-23
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("customer_operation")
@ApiModel(description = "客户运营")
public class CustomerOperation implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 通知渠道(0:)
     */
    //默认主键自增
    @TableId(value = "OPERATION_UID", type = IdType.AUTO)
    private Long operationUid;

    /**
     * 客户id
     */
    @Excel(name = "客户id")
    @ApiModelProperty(value = "客户id")
    private Long customerUid;

    /**
     * 平台ID
     */
    @Excel(name = "平台ID")
    @ApiModelProperty(value = "平台ID")
    private Long platformId;

    /**
     * 运营类型(0:人群运营,1:场景运营)
     */
    @Excel(name = "运营类型(0:人群运营,1:场景运营)")
    @ApiModelProperty(value = "运营类型(0:人群运营,1:场景运营)")
    private String operationType;

    /**
     * 人群id
     */
    @Excel(name = "人群id")
    @ApiModelProperty(value = "人群id")
    private Long definitionUid;

    /**
     * 人群名称
     */
    @Excel(name = "人群名称")
    @ApiModelProperty(value = "人群名称")
    private String definitionName;

    /**
     * 运营类型值
     */
    @Excel(name = "运营类型值")
    @ApiModelProperty(value = "运营类型值")
    private String operationTypeValue;

    /**
     * 运营名称
     */
    @Excel(name = "运营名称")
    @ApiModelProperty(value = "运营名称")
    private String operationName;

    /**
     * 运营方式(0:自动长期计划，1:手动定时计划)
     */
    @Excel(name = "运营方式(0:自动长期计划，1:手动定时计划)")
    @ApiModelProperty(value = "运营方式(0:自动长期计划，1:手动定时计划)")
    private String operationMode;

    /**
     * 执行时间(0:立即执行,1：定时执行)
     */
    @Excel(name = "执行时间(0:立即执行,1：定时执行)")
    @ApiModelProperty(value = "执行时间(0:立即执行,1：定时执行)")
    private String executeType;

    /**
     * 执行开始时间或执行时间
     */
    @Excel(name = "执行开始时间或执行时间")
    @ApiModelProperty(value = "执行开始时间或执行时间")
    private String operationBeginTime;

    /**
     * 执行结束时间
     */
    @Excel(name = "执行结束时间")
    @ApiModelProperty(value = "执行结束时间")
    private String operationEndTime;

    /**
     * 执行时间类型
     */
    @Excel(name = "执行时间类型")
    @ApiModelProperty(value = "执行时间类型")
    private String operationTimeType;

    /**
     * 通知渠道(0:公众号图文消息，1:短信通知,2:微信模板消息,3:小程序订阅消息)
     */
    @Excel(name = "通知渠道(0:公众号图文消息，1:短信通知,2:微信模板消息,3:小程序订阅消息)")
    @ApiModelProperty(value = "通知渠道(0:公众号图文消息，1:短信通知,2:微信模板消息,3:小程序订阅消息)")
    private String notificationChannel;

    /**
     * 通知类型(0:通知一个渠道,1:通知所有渠道)
     */
    @Excel(name = "通知类型(0:通知一个渠道,1:通知所有渠道)")
    @ApiModelProperty(value = "通知类型(0:通知一个渠道,1:通知所有渠道)")
    private String notificationRuleType;

    /**
     * 通知类型为0时具体渠道类型
     */
    @Excel(name = "通知类型为0时具体渠道类型")
    @ApiModelProperty(value = "通知类型为0时具体渠道类型")
    private String notificationRule;

    /**
     * 通知时间
     */
    @Excel(name = "通知时间")
    @ApiModelProperty(value = "通知时间")
    private String notificationTime;

    /**
     * 异常提醒(0:通过app提醒,1:通过手机号提醒)
     */
    @Excel(name = "异常提醒(0:通过app提醒,1:通过手机号提醒)")
    @ApiModelProperty(value = "异常提醒(0:通过app提醒,1:通过手机号提醒)")
    private String abnormalRemind;

    /**
     * 提醒手机号
     */
    @Excel(name = "提醒手机号")
    @ApiModelProperty(value = "提醒手机号")
    private String remindPhone;

    /**
     * 运营状态(0:未开始,1:进行中,2:已暂停,3:异常暂停,4:已结束)
     */
    @Excel(name = "运营状态")
    @ApiModelProperty(value = "运营状态")
    private String operationStatus;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private Long createUser;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    @ApiModelProperty(value = "修改人")
    private Long updateUser;

    /**
     * 状态，1有效，0无效，-1删除
     */
    @Excel(name = "状态，1有效，0无效，-1删除")
    @ApiModelProperty(value = "状态，1有效，0无效，-1删除")
    private String dataStatus;

    /**
     * 创建人名称
     */
    @Excel(name = "创建人名称")
    @ApiModelProperty(value = "创建人名称")
    private String createName;

    /**
     * 修改人名称
     */
    @Excel(name = "修改人名称")
    @ApiModelProperty(value = "修改人名称")
    private String updateName;


}
